#!/usr/bin/env python3
"""
公司信息表迁移脚本
添加新的字段以支持前端需要的数据结构
"""

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from sqlalchemy import text
from app.database import engine, SessionLocal

def migrate_company_info():
    """迁移公司信息表，添加新字段"""
    
    # 要添加的新字段
    new_columns = [
        "company_logo VARCHAR(500)",
        "company_slogan VARCHAR(500)", 
        "company_description TEXT",
        "established_year VARCHAR(50)",
        "project_count VARCHAR(50)",
        "company_introduction TEXT",
        "company_vision TEXT",
        "company_mission TEXT",
        "company_values TEXT"
    ]
    
    db = SessionLocal()
    try:
        # 检查表是否存在
        result = db.execute(text("""
            SELECT name FROM sqlite_master 
            WHERE type='table' AND name='company_info'
        """))
        
        if not result.fetchone():
            print("公司信息表不存在，请先运行主程序创建表")
            return
            
        # 获取现有列
        result = db.execute(text("PRAGMA table_info(company_info)"))
        existing_columns = {row[1] for row in result.fetchall()}
        
        print(f"现有列: {existing_columns}")
        
        # 添加新列
        for column_def in new_columns:
            column_name = column_def.split()[0]
            if column_name not in existing_columns:
                try:
                    db.execute(text(f"ALTER TABLE company_info ADD COLUMN {column_def}"))
                    print(f"✅ 添加列: {column_name}")
                except Exception as e:
                    print(f"❌ 添加列 {column_name} 失败: {e}")
            else:
                print(f"⏭️  列 {column_name} 已存在")
        
        db.commit()
        print("✅ 数据库迁移完成")
        
    except Exception as e:
        print(f"❌ 迁移失败: {e}")
        db.rollback()
    finally:
        db.close()

def create_default_company_info():
    """创建默认的公司信息"""
    db = SessionLocal()
    try:
        # 检查是否已有公司信息
        result = db.execute(text("SELECT COUNT(*) FROM company_info"))
        count = result.fetchone()[0]
        
        if count == 0:
            # 插入默认公司信息
            default_data = {
                'company_name': '贵州青鸿生态环境咨询服务有限公司',
                'company_logo': 'https://space.coze.cn/api/coze_space/gen_image?image_size=square&prompt=environmental+engineering+company+logo%2C+clean+design%2C+blue+color&sign=c27ff3fa3e4891608ccffb2a9c777237',
                'company_slogan': '专业环境工程咨询，守护绿色未来',
                'company_description': '我们是一家专业的环境工程咨询公司，致力于为客户提供全方位的环境解决方案。',
                'established_year': '2000',
                'employee_count': '300+',
                'project_count': '500+',
                'company_introduction': '我公司成立于2000年，是一家集工程建设、设计、咨询、监理于一体的综合性环境工程企业。公司拥有各类专业技术人员300余人，其中高级职称人员50余人，中级职称人员150余人。多年来，公司始终坚持"质量第一、安全第一、信誉第一"的经营理念，先后完成了多项省市级重点工程，获得了社会各界的广泛好评。公司连续多年被评为"重合同守信用企业"、"AAA级信用企业"等荣誉称号。',
                'company_vision': '成为国内领先的环境工程解决方案提供商，为可持续发展贡献力量',
                'company_mission': '通过专业的环境工程咨询服务，帮助客户实现环境目标，促进绿色发展',
                'company_values': '专业,诚信,创新,责任,环保',
                'address': '贵州省贵阳市观山湖区',
                'phone': '0851-12345678',
                'email': 'info@gzqhsz.com',
                'website': 'www.gzqhsz.com'
            }
            
            # 构建插入语句
            columns = ', '.join(default_data.keys())
            placeholders = ', '.join([f":{key}" for key in default_data.keys()])
            
            db.execute(text(f"""
                INSERT INTO company_info ({columns}) 
                VALUES ({placeholders})
            """), default_data)
            
            db.commit()
            print("✅ 创建默认公司信息成功")
        else:
            print("⏭️  公司信息已存在，跳过创建")
            
    except Exception as e:
        print(f"❌ 创建默认公司信息失败: {e}")
        db.rollback()
    finally:
        db.close()

if __name__ == "__main__":
    print("开始迁移公司信息表...")
    migrate_company_info()
    print("\n创建默认公司信息...")
    create_default_company_info()
    print("\n迁移完成！")
